package com.ruoyi.course.mapper;

import java.util.List;
import com.ruoyi.course.domain.SysCourse;
import org.apache.ibatis.annotations.Param;

/**
 * 课程Mapper接口
 * 
 * @author YJF
 * @date 2023-05-17
 */
public interface SysCourseMapper 
{

    public List<SysCourse> selectCourseCountByType(@Param("delFlag") Integer delFlag, @Param("releaseStatus") Integer releaseStatus);
    /**
     * 查询课程
     * 
     * @param courseId 课程主键
     * @return 课程
     */
    public SysCourse selectSysCourseByCourseId(Long courseId);

    public SysCourse selectSysCourseByCourseNo(Long courseNo);

    /**
     * 查询课程列表
     * 
     * @param sysCourse 课程
     * @return 课程集合
     */
    public List<SysCourse> selectSysCourseList(SysCourse sysCourse);

    /**
     * 查询全部课程列表
     *
     * @param sysCourse 课程
     * @return 课程集合
     */
    public List<SysCourse> selectWholeList(SysCourse sysCourse);

    /**
     * 新增课程
     * 
     * @param sysCourse 课程
     * @return 结果
     */
    public int insertSysCourse(SysCourse sysCourse);

    /**
     * 修改课程
     * 
     * @param sysCourse 课程
     * @return 结果
     */
    public int updateSysCourse(SysCourse sysCourse);

    /**
     * 删除课程
     * 
     * @param courseId 课程主键
     * @return 结果
     */
    public int deleteSysCourseByCourseId(Long courseId);

    /**
     * 批量删除课程
     * 
     * @param courseIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysCourseByCourseIds(Long[] courseIds);

    /**
     * 校验课程名称+分类是否唯一
     * @param sysCourse 课程
     * @return 结果
     */
    public int checkCourseNameUnique(SysCourse sysCourse);

}
